//
//  UIColor+Toos.m
//  demo10-9
//
//  Created by xx on 15/10/12.
//  Copyright (c) 2015年 xx. All rights reserved.
//

#import "UIColor+Toos.h"

@implementation UIColor (Toos)

+(UIColor *)colorWithImageName:(NSString *)imageName
{
    UIImage *image = [UIImage imageNamed:imageName];
    return [UIColor colorWithPatternImage:image];
}


+ (UIColor *)colorWithRGB:(CGFloat)R G:(CGFloat) G B:(CGFloat) B A:(float)A
{
    return [UIColor colorWithRed:R/255.0f
                           green:G/255.0f
                            blue:B/255.0f
                           alpha:A];
}


+ (UIColor *)colorWithRGB:(CGFloat)R G:(CGFloat) G B:(CGFloat) B
{
    return [UIColor colorWithRed:R/255.0f green:G/255.0f blue:B/255.0f alpha:1];
}
- (UIColor *)colorWithRGB:(CGFloat)R G:(CGFloat) G B:(CGFloat) B A:(float)A
{
     return [UIColor colorWithRed:R/255.0f green:G/255.0f blue:B/255.0f alpha:1];
}

+ (UIColor *) colorWithHexString: (NSString *)color
{
   return [self colorWithHexString:color alpha:1.f];
}


+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha
{
    //删除字符串中的空格
    NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
    // String should be 6 or 8 characters
    if ([cString length] < 6)
    {
        return [UIColor clearColor];
    }
    // strip 0X if it appears
    //如果是0x开头的，那么截取字符串，字符串从索引为2的位置开始，一直到末尾
    if ([cString hasPrefix:@"0X"])
    {
        cString = [cString substringFromIndex:2];
    }
    //如果是#开头的，那么截取字符串，字符串从索引为1的位置开始，一直到末尾
    if ([cString hasPrefix:@"#"])
    {
        cString = [cString substringFromIndex:1];
    }
    if ([cString length] != 6)
    {
        return [UIColor clearColor];
    }
    
    // Separate into r, g, b substrings
    NSRange range;
    range.location = 0;
    range.length = 2;
    //r
    NSString *rString = [cString substringWithRange:range];
    //g
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    //b
    range.location = 4;
    NSString *bString = [cString substringWithRange:range];
    
    // Scan values
    unsigned int r, g, b;
    [[NSScanner scannerWithString:rString] scanHexInt:&r];
    [[NSScanner scannerWithString:gString] scanHexInt:&g];
    [[NSScanner scannerWithString:bString] scanHexInt:&b];
    return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha];
}

//UIColor 转UIImage
+ (UIImage*) imageWithColor: (UIColor*) color
{
    UIImage *theImage =[self imageWithColor:color size:CGSizeMake(1, 1)];
    return theImage;
}

/*
 
 *生成一张纯色的图片
 
 */

+(UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size

{
    
    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    
    UIGraphicsBeginImageContext(rect.size);
    
    CGContextRef context = UIGraphicsGetCurrentContext();
    
    
    
    CGContextSetFillColorWithColor(context, [color CGColor]);
    
    CGContextFillRect(context, rect);
    
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return image;
    
}

+(UIColor *)randomColor{
    
    NSInteger randRed = arc4random()%255;
    NSInteger randBlue = arc4random()%255;
    NSInteger randGreen = arc4random()%255;
    return [UIColor colorWithRed:randRed/255.0 green:randBlue/255.0 blue:randGreen/255.0 alpha:1.0];
}

@end
